package com.elvis.springaopinaction.config;

/**
 * 具体装饰：实现抽象装饰者角色，负责对具体构件添加额外功能。
 */
public class ConcreteCreamMilkTea extends DecoratorMikeTea{

    public ConcreteCreamMilkTea(MikeTeaImpl mikeTea) {
        super(mikeTea);
    }

    @Override
    public void makeMilkTea(){
        super.makeMilkTea();
        System.out.print("  + 加椰奶");
    }
}

class ConcretePearlMilkTea extends DecoratorMikeTea{

    public ConcretePearlMilkTea(MikeTeaImpl mikeTea) {
        super(mikeTea);
    }

    @Override
    public void makeMilkTea(){
        super.makeMilkTea();
        System.out.print("  + 加珍珠");
    }
}


class ConcreteRedBeanMilkTea extends DecoratorMikeTea{

    public ConcreteRedBeanMilkTea(MikeTeaImpl mikeTea) {
        super(mikeTea);
    }

    @Override
    public void makeMilkTea(){
        super.makeMilkTea();
        System.out.print("  + 加红豆");
    }
}